查看原文
其他

第十九次课改为爬取结构化表格数据了

陈鸥辉 信息科技时代 2024-03-15
import requestsfrom bs4 import BeautifulSoupimport pandas as pd#世界人均GDP排名网址:url='http://www.8pu.com/gdp/per_capita_gdp_2021.html'#url = 'http://www.tianqihoubao.com/lishi/zhuzhou/month/202112.html'#株洲天气网址中的202112代表2021年12月,可以改成类似202111,代表2021年11月hd = {'user-agent': '*'} # 设置请求方式r = requests.get(url, headers=hd) # 爬取网页上的数据print(r.encoding) # 如果输出utf-8或者GBK等中文编码,则第14行代码要注释掉。r=r.textr=r.encode('ISO-8859-1').decode('utf-8','ignore')#中文编码:UTF-8或GBKsoup = BeautifulSoup(r, "html.parser")tr=soup.select('tr') #补充代码,一行一行地选取num= []#存排名cou = []#存国家d = []#存美元y = []#存人民币for i in range(1,len(tr)):#第一个tr标签不需要 t=tr[i].text.split() #以空格分割文本 print(t) num.append(t[0]) # 补充代码 存储排名 cou.append(t[1])# 补充代码 存国家 d.append(t[2].replace('$','').replace('美元','')) # 补充代码 美元 转化成相对应的数据类型 y.append(t[3].replace('¥','').replace('元','')) # 补充代码 人民币 转化成相对应的数据类型#写入表格df=pd.DataFrame({'排名':num,'国家':cou,'美元$':d,'人民币¥':y})df.to_csv('人均GDP排名.csv',index=0)print('数据保存成功!')#ftp://172.16.20.46 2115 程序+表格

    首先还是按《2021下学期|第十九次课-第五章第五节-爬取天气数据》中的例子以爬取天气为例讲解了如何爬取天气,然后让学生修改完成爬取人均GDP的数据。

    今天2115班是第二个班上这个内容,中途有一女生问我爬下来的数据怎么处理,我想干脆全部给同学们一起讲一下算哒。所以我提问:“同学们,还要不要我来讲解一下如何爬取人均GDP?”结果学生中大多数喊:“不要!”嗨……真的是跌破我的眼镜啊~!我本以为都是菜鸡,我不来讲必然啥都不懂,结果一个个表现得好牛一样的。有学生下课了还在说:“爬虫好有趣啊~!”

    为什么要爬人均GDP的数据呢?是因为我觉得爬历史天气数据价值感有点低,所以一直在想怎么扩展出去,最后想到了这个提供GDP的数据的网站。然后带着学生走进结构化表格数据的这一整类,从学生的整体表现来看:显然对GDP数据的兴趣比对历史天气数据的兴趣要大得多。

    当然,如果能够想到更好的例子,我还会继续更改更多的例子来扩展孩子们的兴趣了,毕竟兴趣才是最好的老师嘛!!!

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存